using System;

namespace Deepcode.Flux.Core.Systems.Workflow.Info
{
	/// <summary>
	/// Describes a workflow taskable exposed from a workflow handler
	/// A taskable method is used instead of specifying tasking at user
	/// or user group level, and instead implements a callback method
	/// to obtain a list of users and groups that should be tasked.
	/// </summary>
	public class WorkflowTaskableMethodInfo
	{
		#region Private Fields
		private string methodName = "";
		private string friendlyName = "";
		#endregion
		#region Properties
		/// <summary>
		/// Get/Set the C# method name
		/// </summary>
		public string MethodName{ get{ return methodName; } set{ methodName = value; }}
		/// <summary>
		/// Get/Set the friendly name of the method
		/// </summary>
		public string FriendlyName{ get{ return friendlyName; } set{ friendlyName = value; }}
		#endregion
		/// <summary>
		/// Create a WorkflowTaskableMethodInfo object
		/// </summary>
		/// <param name="sMethodName"></param>
		/// <param name="sFriendlyName"></param>
		/// <param name="sConfigClass"></param>
		public WorkflowTaskableMethodInfo( string sMethodName, string sFriendlyName )
		{
			methodName = sMethodName;
			friendlyName = sFriendlyName;
		}
	}
	/// <summary>
	/// Implements an arraylist derived collection of WorkflowTaskableMethodInfo objects
	/// </summary>
	public class WorkflowTaskableMethodInfos : System.Collections.ArrayList
	{
	}
}
